解决 Nexus 系列 Android 5.0 Lollipop 连接 Wifi 的感叹号问题

Update:

本文作废,正解在小狐狸. 中国 /45.html

简单说,执行下列命令即可解决:

1
adb shell 'settings put global captive_portal_server g.cn'

大陆地区的 Nexus4, 5 在升级 5.0 之后,连接 Wifi 时常会看见状态栏图标上显示一个感叹号,之后自动开启并回退到使用 3G/4G 上网的情况,造成设备偶尔偷跑流量。而受限于 SELinux,截至目前 ss 等软件仍仅能工作于 VPN 模式而非 Root 模式。

传说中,造成 Wifi 叹号的原因是设备会不断尝试 ping google.com 以判断网络是否可用。于是找个可 ping 的 Google IP,再把它写入 hosts 即可。

如果你不大懂怎么改 hosts 的话,大致步骤如下:

  1. 确保 PC/Mac 端有 adb/fastboot。
  2. 确保手机已 root,如未 root 可至 autoroot.chainfire.eu 下载对应机型的文件以 adb/fastboot 刷入即可。
  3. adb shell 连接手机,然后以 su 提权,确认后键入以下命令
1
2
3
4
mount -o remount,rw /system /system
echo '173.194.127.201 www.google.com' >> /etc/hosts
echo '173.194.127.201 google.com' >> /etc/hosts
reboot

重启后效果还不错,虽然偶尔仍会出现 wifi 叹号,但时间都很短,不至于回退至 3G。